"""
公用工具文件. 专门解决JSON数据的转换, 将JSON格式, 转换为参数化需要的格式

[{}, {}, {}] --> [(), (), ()]

核心思路:
1. 循环读取JSON里面的字典数据
2. 将字典数据, 去掉key, 变为元组
3. 将元组, 组成新的列表并返回
"""
import json

from config import BASE_DIR


def build_data(filepath):
    """
    专门构建参数化需要的数据的方法
    :param filepath: 文件的路径
    :return: 转换后的列表  [(), (), ()]
    """
    # 1. 打开文件
    with open(filepath, encoding="UTF8") as file:
        # 2. 将JOSN转换为Python数据类型
        data_list = json.load(file)
        # print(type(data_list), data_list)
        # 3. 定义空列表, 用来保存转换后的元组
        temp_list = []
        # 4. 使用for循环, 遍历列表数据
        for data in data_list:
            # 5. 将字典变为元组
            temp = tuple(data.values())
            # print(type(temp), temp)
            # 6. 将元组添加到上面的空列表中
            temp_list.append(temp)
        # 7. 返回新生成的列表
        return temp_list


if __name__ == '__main__':
    # win系统的路径, 会被错误识别成转义符. 为了避免识别为转义符, 需要前面加r, 表示这是个普通的字符串
    # json文件, 右键, 拷贝地址(copy path), 拷贝绝对路径, 粘贴到下面
    # data = build_data(r"/Users/Andy/PycharmProjects/DemoIHRM_Teacher/data/login_data.json")

    # 拼接时: 1. 斜杠不要丢, 否则路径就连一起   2. json的路径, 从左侧拷贝相对路径接口
    data = build_data(BASE_DIR + r"/data/login_data.json")
    print(data)
